<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
        参考
        https://juejin.cn/post/6844903794082316296
        */
        /* 
        原始1
* 函数声明优于变量声明
* 函数表达式会将变量提升，但是代码在执行的时候才会被赋值
*/
        // //原始1
        // test();
        // console.log(test);
        // function test() {
        //     console.log('我是函数');
        // }
        // console.log(test);
        // var test = '我是变量';
        // console.log(test);
        // var test = function (params) {
        //     console.log('我是函数表达式');
        // }
        // console.log(test);
        // test();

        //编译1
        function test() {
            console.log('我是函数');
        }
        var test;
        var test;
        test();
        console.log(test);
        console.log(test);
        test='我是变量';
        console.log(test);
        test = function (params) {
            console.log('我是函数表达式');
        }
        console.log(test);
        test();

        // //原始2
        // test();
        // console.log(test);
        // var test = '我是变量';
        // console.log(test);
        // var test = function (params) {
        //     console.log('我是函数表达式');
        // }
        // console.log(test);
        // function test() {
        //     console.log('我是函数');
        // }
        // console.log(test);
        // test();
        // //编译2
        // function test() {
        //     console.log('我是函数');
        // }
        // var test;
        // var test;
        // test();
        // console.log(test);
        // test = '我是变量';
        // console.log(test);
        // test = function (params) {
        //     console.log('我是函数表达式');
        // }
        // console.log(test);
        // console.log(test);
        // test();


        // // 原始3
        // console.log(test);
        // function test() {
        //     console.log('我是函数');
        // }
        // console.log(test);
        // function test() {
        //     console.log('我是函数表达式');
        // }
        // console.log(test);
        // test();
        // //编译3
        // function test() {
        //     console.log('我是函数');
        // }
        // function test() {
        //     console.log('我是函数表达式');
        // }
        // console.log(test);
        // console.log(test);
        // console.log(test);
        // test();

    </script>
</body>

</html>